package com.haixiaoke.saas.house.service;

import com.haixiaoke.saas.house.domain.House;
import com.haixiaoke.saas.house.domain.SubHouse;

import java.util.List;

/**
 * 房屋子房间Service接口
 *
 * @author panda
 * @date 2023-10-25
 */
public interface ISubHouseService {
    /**
     * 查询房屋子房间
     *
     * @param subordinateHouseId 房屋子房间主键
     * @return 房屋子房间
     */
    SubHouse selectSubordinateHouseBySubordinateHouseId(String subordinateHouseId);

    /**
     * 查询房屋子房间列表
     *
     * @param subordinateHouse 房屋子房间
     * @return 房屋子房间集合
     */
    List<SubHouse> selectSubordinateHouseList(SubHouse subordinateHouse);

    /**
     * 新增房屋子房间
     *
     * @param subordinateHouse 房屋子房间
     * @return 结果
     */
    int insertSubordinateHouse(SubHouse subordinateHouse);

    /**
     * 修改房屋子房间
     *
     * @param subordinateHouse 房屋子房间
     * @return 结果
     */
    int updateSubordinateHouse(SubHouse subordinateHouse);

    /**
     * 批量删除房屋子房间
     *
     * @param subordinateHouseIds 需要删除的房屋子房间主键集合
     * @return 结果
     */
    int deleteSubordinateHouseBySubordinateHouseIds(String[] subordinateHouseIds);

    /**
     * 删除房屋子房间信息
     *
     * @param subordinateHouseId 房屋子房间主键
     * @return 结果
     */
    int deleteSubordinateHouseBySubordinateHouseId(String subordinateHouseId);

    /**
     * 批量插入
     *
     * @param subordinateHouseList
     * @return
     */
    int insertBatchSubordinateHouse(List<SubHouse> subordinateHouseList);

    /**
     * 统计子房间总数
     *
     * @return
     */
    int selectHouseByHouseNumber();

    int selectHouseCountByHouseState(String houseState, String houseLeaseState, String houseMaintainState, String onlineRentalType,String tenantId);

    /**
     * 批量修改子房间数据
     * @param subordinateHouseList
     * @return
     */
    int updateBatchSubordinateHouse(List<SubHouse> subordinateHouseList);

    /**
     * 根据房屋id查询子房间列表
     * @param houseId
     * @return
     */
    List<SubHouse> selectSubordinateHouseByHouseId(String houseId);

    int softDeleteSubordinateHouseByHouseIds(String houseId);

    List <House> selectSubHouseListConvertHouse(House house);
}
